package userModify

// 用户修改信息获取
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type UserModifyInfo struct {
	Name   string `validate:"required,max=12,min=1" json:"name"`  // 用户名
	Age    uint   `validate:"required,max=199,min=0" json:"age"`  //年龄
	Gender int    `validate:"required,max=2,min=0" json:"gender"` //性别
}

// 获取用户当前设置密保数据
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type UserSecurityItem struct {
	ID   int    `json:"type"`  // 密保类型id
	Name string `json:"title"` // 密保题目
}

// 用户修改密保问题请求结构体
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type ModifyUserSecurity struct {
	ModifyUserSecurityList []ModifyUserSecurityItem `validate:"required,len=2"` // 密保问题集合
}

// 用户修改密保问题成员请求结构体
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type ModifyUserSecurityItem struct {
	TypeId           uint   `validate:"required,min=1"`             // 密保类型id
	OldAnswer        string `validate:"required"`                   // 老密保答案
	NewAnswer        string `validate:"required,nefield=OldAnswer"` // 新密保答案
	ConfirmNewAnswer string `validate:"eqfield=NewAnswer"`          // 确认新密保答案
}

// 修改密码请求参数
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type ChangePassword struct {
	OlderPassword      string               `validate:"required"`              // 旧密码
	NewPassword        string               `validate:"required,max=12,min=8"` // 新密码
	ConfirmPassword    string               `validate:"eqfield=NewPassword"`   // 确认新密码
	VerifySecurityItem []VerifySecurityItem `validate:"required,len=2"`        // 密保验证
}

// 忘记密码请求参数
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type ForgotPassword struct {
	Name           string                `validate:"required,max=12,min=1"` // 用户名
	Account        string                `validate:"required,max=12,min=8"` // 账号
	ChangePassword `validate:"required"` // 修改密码请求体
}

// 密保验证成员结构体
// ————————————————————————————————————————————————————————————————————————————————————————————————————
type VerifySecurityItem struct {
	TypeId uint   `validate:"required,min=1"` // 密保类型id
	Answer string `validate:"required"`       // 密保答案
}
